#define  _CRT_SECURE_NO_WARNINGS
#include<set>
#include<functional>
#include<iostream>

using namespace std;

struct Greater
{
	bool operator()(const int& a, const int& b) const
	{
		return a > b;
	}
};

int main()
{
	set<int,Greater> s;
	s.insert(1);
	s.insert(3);
	s.insert(2);
	s.insert(10);
	s.insert(7);
	cout << s.erase(2) << endl;
	/*for (auto& e : s)
		cout << e << endl;

	set<int> myset;
	for (int i = 1; i <= 5; i++)
	{
		pair<set<int>::iterator, set<int>::iterator> ret = myset.equal_range(35);
		cout << *ret.first << "---" << *ret.second << endl;
	}*/

	multiset<int> ms;
	ms.insert(2);
	ms.insert(2);
	ms.insert(1);
	ms.insert(4);
	ms.insert(2);
	ms.insert(8);
	cout << ms.erase(2) << endl;
	return 0;
}

//int main()
//{
//	std::set<int> myset;
//
//	for (int i = 1; i <= 5; i++) myset.insert(i * 10);   // myset: 10 20 30 40 50
//
//	std::pair<std::set<int>::const_iterator, std::set<int>::const_iterator> ret;
//	ret = myset.equal_range(35);
//
//
//	std::cout << "the lower bound points to: " << *ret.first << '\n';
//	std::cout << "the upper bound points to: " << *ret.second << '\n';
//
//	return 0;
//}